// 封装axios请求
// 导入axios是全局的axios
import axios from 'axios'
import JSONBig from 'json-bigint'
import { getToken } from '@/utils/storage.js'

const request = axios.create({
  // 基准地址
  baseURL: 'http://ttapi.research.itcast.cn',
  // 超时，如果接口超过3000毫秒，直接失败
  timeout: 5000,
  transformResponse: [function (data) {
    let result
    try {
      result = JSONBig.parse(data)
    } catch {
      // 如果不是json 返回原数据
      result = data
    }
    return result
  }]
})

// // 添加请求拦截器
// request.interceptors.request.use(function (config) {
//   // 在发送请求之前做些什么
//   console.log('被我拦住了吧', config.headers)
// })

// 添加请求拦截器
request.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // console.log('被我拦住了吧', config.headers)
  const token = getToken()
  if (token) {
    config.headers.Authorization = 'Bearer ' + getToken()
  }
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})

export default request
